// package_todoList/components/monthList/monthList.js

Component({
    /**
     * 组件的属性列表
     */
    properties: {
        dis:String,
        curMonth:Number,
        curYear:Number,
        start:0
    },

    /**
     * 组件的初始数据
     */
    data: {
        mList:[],
        isLeft:false,
        realYear:0,
        realMonth:0,
        isRight:false
    },

    /**
     * 组件的方法列表
     */
    methods: {
        handleChangeActive(e){
            // console.log(e)
            const targetIndex = e.currentTarget.dataset.index
            // 八点记得具体的月份传递给父元素
            this.triggerEvent("changeActive",targetIndex)
        },
        scroll(e){
            // console.log(e)
            // console.log("在滚动了")
            this.setData({
                isLeft:false,
                isRight:false
            })
        },
        handledragstart(e){
            // console.log("strat",e)
            this.setData({
                start:e.changedTouches[0].pageX
            })
        },
        handledragend(e){
            const res = e.changedTouches[0].pageX;
            // 如果同时满足到0 位置和向右滑动就触发回滚上一年的事件

            if((res-this.data.start)>0 && this.data.isLeft){
                this.triggerEvent("toLast")
            }
            if((res-this.data.start)<0 && this.data.isRight){
                // 向右滑动
                this.triggerEvent("toNext")
            }
            // console.log(res-this.data.start,this.data.isLeft)
             
        },
        handleright(){
            // 滚动到右边的尽头
            this.setData({
                isRight:true
            })
        },
        handleleft(){
            // 滚动到左边的尽头
            this.setData({
                isLeft:true
            })
        }
      
    },
    lifetimes:{
        attached: function() {
            // 在组件实例进入页面节点树时执行
            // 生成12个月份的数据列表
            const rawArr = new Array(12).fill(0)
            const mList = rawArr.map((item,index)=>{
                return index+1
            })
            // console.log(mList)
            this.setData({
                mList
            })

            // 计算出现在的实际年月
            const date = new Date()
            const year = date.getFullYear();
            const month = date.getMonth()+1;
            const day = date.getDate();
            this.setData({
                realMonth:month,
                realYear:year
            })
          },
    }
})
